package blazej.edytorGui;

import java.awt.BorderLayout;


import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.SpringLayout;
import javax.swing.JList;
import javax.swing.border.TitledBorder;
import javax.swing.border.LineBorder;
import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;



import blazej.edytir.dane.Klub;
import blazej.edytir.dane.Liga;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.FileNotFoundException;
import java.io.FileReader;

public class LigaGui extends JFrame {
	
	JList list;
	Liga liga = new Liga();
	private JPanel contentPane;
	private JTextField txtLiga;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
			
			}
		});
		FileReader fr = null;
	
	
	
		try{	
		 fr = new FileReader("kluby.csv");
		Odczyt.odczytKlubu(fr);
	
		Zapis.twozPlikKlub();
		Zapis.twozPlikDruzyny();
		Zapis.twozPlikZawodnika();
		
	}
	catch(FileNotFoundException e) {
		Zapis.twozPlikKlub();
		Zapis.twozPlikDruzyny();
		Zapis.twozPlikZawodnika();
		LigaGui frame = new LigaGui();
		frame.setVisible(true);
	}
	}

	/**
	 * Create the frame.
	 */
	public LigaGui() {

		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 475, 324);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		SpringLayout sl_contentPane = new SpringLayout();
		contentPane.setLayout(sl_contentPane);
		
		 list = new JList();
		sl_contentPane.putConstraint(SpringLayout.NORTH, list, 27, SpringLayout.NORTH, contentPane);
		sl_contentPane.putConstraint(SpringLayout.WEST, list, 10, SpringLayout.WEST, contentPane);
		list.setBorder(new TitledBorder(new LineBorder(new Color(0, 0, 0), 3), "Lista Klub\u00F3w", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		contentPane.add(list);
		
		list.setListData(liga.getLiga());
		
		JButton btnDodajKlub = new JButton("Dodaj Klub");
		btnDodajKlub.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				if(e.getButton()==MouseEvent.BUTTON1){
					dodajKlub();
				}
			}
		});
		sl_contentPane.putConstraint(SpringLayout.NORTH, btnDodajKlub, 191, SpringLayout.NORTH, contentPane);
		sl_contentPane.putConstraint(SpringLayout.WEST, btnDodajKlub, 10, SpringLayout.WEST, contentPane);
		sl_contentPane.putConstraint(SpringLayout.SOUTH, list, -6, SpringLayout.NORTH, btnDodajKlub);
		contentPane.add(btnDodajKlub);
		
		JButton btnEdytujKlub = new JButton("Edytuj Klub");
		sl_contentPane.putConstraint(SpringLayout.NORTH, btnEdytujKlub, 0, SpringLayout.NORTH, btnDodajKlub);
		btnEdytujKlub.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				if(e.getButton()==MouseEvent.BUTTON1){
					edycjaKlubu(getLiga().podajKlub(getList().getSelectedIndex()));
				}
			}
		});
		contentPane.add(btnEdytujKlub);
		
		JButton btnUsuKlub = new JButton("Usu\u0144 Klub");
		sl_contentPane.putConstraint(SpringLayout.EAST, btnEdytujKlub, -6, SpringLayout.WEST, btnUsuKlub);
		btnUsuKlub.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				usuwanie();
			}
		});
		sl_contentPane.putConstraint(SpringLayout.EAST, btnUsuKlub, -61, SpringLayout.EAST, contentPane);
		sl_contentPane.putConstraint(SpringLayout.EAST, list, 0, SpringLayout.EAST, btnUsuKlub);
		sl_contentPane.putConstraint(SpringLayout.NORTH, btnUsuKlub, 0, SpringLayout.NORTH, btnDodajKlub);
		contentPane.add(btnUsuKlub);
		
		JButton btnWyjd = new JButton("Wyjd\u017A");
		btnWyjd.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				if(e.getButton()==MouseEvent.BUTTON1){
					
					zamknij();
					
					Zapis.zamkniPlikKlubu();
					Zapis.zamkniPlikDruzyny();
					Zapis.zamkniPlikZawodnika();
					
					
						
				}
			}
		});
		sl_contentPane.putConstraint(SpringLayout.SOUTH, btnWyjd, -10, SpringLayout.SOUTH, contentPane);
		sl_contentPane.putConstraint(SpringLayout.EAST, btnWyjd, -10, SpringLayout.EAST, contentPane);
		contentPane.add(btnWyjd);
		
		JLabel lblLiga = new JLabel("Liga");
		sl_contentPane.putConstraint(SpringLayout.WEST, lblLiga, 0, SpringLayout.WEST, list);
		contentPane.add(lblLiga);
		
		txtLiga = new JTextField();
		sl_contentPane.putConstraint(SpringLayout.WEST, txtLiga, 6, SpringLayout.EAST, lblLiga);
		sl_contentPane.putConstraint(SpringLayout.NORTH, lblLiga, 3, SpringLayout.NORTH, txtLiga);
		contentPane.add(txtLiga);
		txtLiga.setColumns(10);
	}
	
	//FUNKCJE BUTTONOW
	void dodajKlub(){
		KlubGui klubgui= new KlubGui(this);
		klubgui.setVisible(true);
		Klub klub =new Klub();
		klubgui.setKlub(klub);
		
		
		
	}
	
	
	void edycjaKlubu(Klub klub){
		KlubGui klubgui= new KlubGui(this);
		klubgui.setVisible(true);
		klubgui.setKlub(klub);
		klubgui.getList().setListData(klub.getKlub());
		klubgui.tekst();
		
		
	}
	
	
	void usuwanie(){
		
		liga.usunKlub(list.getSelectedIndex());
		
		list.setListData(liga.getLiga());
		
	}
	
	void zamknij()
	{
		
		int i=0;
		while(i < liga.getLiga().size())
		{
		Zapis.zapisDoPliku((Integer.toString(liga.podajKlub(i).getIdKlubu())), liga.podajKlub(i).getNazwa());
		
		if(liga.podajKlub(i).getKlub().size()>0)
		{
			int j=0;
			while(j< liga.podajKlub(i).getKlub().size())
			{
				Zapis.zapisDoPlikuDruzyny(Integer.toString(liga.podajKlub(i).getIdKlubu()),Integer.toString(liga.podajKlub(i).podajDruzyne(j).getId()),liga.podajKlub(i).podajDruzyne(j).getNazwa());
			
				if (liga.podajKlub(i).podajDruzyne(j).getDruzyna().size()>0)
			{
				int k=0;
				
				while(k< liga.podajKlub(i).podajDruzyne(j).getDruzyna().size()){
					
				
				Zapis.zapisDoPlikuZawodnika(Integer.toString(liga.podajKlub(i).podajDruzyne(j).getId()), Integer.toString(liga.podajKlub(i).podajDruzyne(j).wydajZawodnika(k).getId()), liga.podajKlub(i).podajDruzyne(j).wydajZawodnika(k).getImie(), liga.podajKlub(i).podajDruzyne(j).wydajZawodnika(k).getNazwisko(), Double.toString(liga.podajKlub(i).podajDruzyne(j).wydajZawodnika(k).getUmiejetnosci()));
			k++;
				}
			}
		
			j++;
			}
		}
		i++;
		}
		dispose();
	}
		
	// INNE FUNKCJE
	
	
	
	

	public JList getList() {
		return list;
	}

	public void setList(JList list) {
		this.list = list;
	}

	public Liga getLiga() {
		return liga;
	}

	public void setLiga(Liga liga) {
		this.liga = liga;
	}

	public JTextField getTxtLiga() {
		return txtLiga;
	}

	public void setTxtLiga(JTextField txtLiga) {
		this.txtLiga = txtLiga;
	}
	
	
	
	
	
	
	
}
